package br.com.gtoolz.myimc.modelo;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import br.com.gtoolz.myimc.R;

public class MyAdapter extends ArrayAdapter<ResultadoIMC> {
	
	private final ArrayList<ResultadoIMC> itensSelecionados = new ArrayList<ResultadoIMC>();
	
	private ArrayList<ResultadoIMC> resultados;
	private Activity context;

	public MyAdapter(Context context, int textViewResourceId, List<ResultadoIMC> objects) {
		
		super(context, textViewResourceId, objects);
		this.context = (Activity) context;
		this.resultados = (ArrayList<ResultadoIMC>) objects;
		
	}
	
	public ArrayList<ResultadoIMC> getItensSelecionados() {
		return itensSelecionados;
	}
	
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		
		ResultadoIMC resultado = resultados.get(position);
		
		View view = convertView;
		
		if (view == null) {
			LayoutInflater inflater = context.getLayoutInflater();
			view = (View) inflater.inflate(R.layout.layout_adapter_resultado, null);
		}
		
		CheckBox chk = (CheckBox) view.findViewById(R.id.checkbox);	
		chk.setTag(resultado);
		chk.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View view) {
				
				CheckBox chk = (CheckBox) view;
				ResultadoIMC resultado = (ResultadoIMC) chk.getTag();
				
				if(chk.isChecked()) {
					if(!itensSelecionados.contains(resultado))
						itensSelecionados.add(resultado);
				} else {
					if(itensSelecionados.contains(resultado))
						itensSelecionados.remove(resultado);
				}
				
			}	
			
		});
		
		if(itensSelecionados.contains(resultado)) {
		    chk.setChecked(true);
		} else {
		    chk.setChecked(false);
		}

		TextView data = (TextView) view.findViewById(R.id.data);
		data.setText(resultado.getData());
		TextView imc = (TextView) view.findViewById(R.id.imc);
		imc.setText(resultado.getImc());
		TextView status = (TextView) view.findViewById(R.id.status);
		status.setText(resultado.getStatus());
		
		return view;
	}
	
	@Override
	public long getItemId(int position) {
		return position;
	}
	
	@Override
	public int getCount() {
		return resultados.size();
	}
	
}